f4f109ae911c7d7fdc1527b133da6e2df028af71,basiclti/basiclti-util/src/java/org/imsglobal/basiclti/XMLMap.java,XMLMap,getOrAddChildNode,#Document#Node#String#number#number#,665
Before Change
@SuppressWarnings("static-access")
private static Node getOrAddChildNode(Document doc, Node parentNode, String nodeName,int whichNode, int d)
{
doDebug(d,"> getOrAddChildNode name="+nodeName+"@"+whichNode+" parentNode="+ nodeToString(parentNode));
d++;
if ( nodeName == null || parentNode == null) return null;
// Check to see if we are somewhere in an index
int begpos = nodeName.indexOf('[');
int endpos = nodeName.indexOf(']');
// doDebug(d,"Looking for bracket ipos="+begpos+" endpos="+endpos);
if ( begpos > 0 && endpos > begpos && endpos < nodeName.length() ) {
String indStr = nodeName.substring(begpos+1,endpos);
doDebug(d,"Index String = "+ indStr);
nodeName = nodeName.substring(0,begpos);
doDebug(d,"New Nodename="+nodeName);
Integer iVal = new Integer(indStr);
doDebug(d,"Integer = "+iVal);
whichNode = iVal;
}
NodeList nl = parentNode.getChildNodes();
int foundNodes = -1;
if ( nl != null ) for (int i = 0; i< nl.getLength(); i++ ) {
Node node = nl.item(i);
// doDebug(d,"length= " +nl.getLength()+ " i="+i+" NT="+node.getNodeType());
// doDebug(d,"searching nn="+nodeName+" nc="+node.getNodeName());
if (node.getNodeType() == node.ELEMENT_NODE) {
if ( nodeName.equals(node.getNodeName()) ) {
foundNodes++;
d--;
doDebug(d,"< getOrAddChildNode found name="+ nodeToString(node));
doDebug(d,"foundNodes = "+foundNodes+" looking for node="+whichNode);
if ( foundNodes >= whichNode ) return node;
}
}
}
Element newNode = null;
while ( foundNodes < whichNode ) {
foundNodes++;
doDebug(d,"Adding node at position " + foundNodes + " moving toward " + whichNode);
if ( nodeName == null ) continue;
newNode = doc.createElement(nodeName);
doDebug(d,"Adding "+nodeName+" at "+ nodeToString(parentNode)+" in "+doc);
parentNode.appendChild(newNode);
doDebug(d,"xml="+documentToString(doc,false));
doDebug(d,"getOrAddChildNode added newnode="+ nodeToString(newNode));
}
d--;
doDebug(d,"< getOrAddChildNode added newnode="+ nodeToString(newNode));
return newNode;
}
After Change
@SuppressWarnings("static-access")
private static Node getOrAddChildNode(Document doc, Node parentNode, String nodeName,int whichNode, int d)
{
if ( DF ) doDebug(d,"> getOrAddChildNode name="+nodeName+"@"+whichNode+" parentNode="+ nodeToString(parentNode));
d++;
if ( nodeName == null || parentNode == null) return null;
// Check to see if we are somewhere in an index
int begpos = nodeName.indexOf('[');
int endpos = nodeName.indexOf(']');
// doDebug(d,"Looking for bracket ipos="+begpos+" endpos="+endpos);
if ( begpos > 0 && endpos > begpos && endpos < nodeName.length() ) {
String indStr = nodeName.substring(begpos+1,endpos);
if ( DF ) doDebug(d,"Index String = "+ indStr);
nodeName = nodeName.substring(0,begpos);
if ( DF ) doDebug(d,"New Nodename="+nodeName);
Integer iVal = new Integer(indStr);
if ( DF ) doDebug(d,"Integer = "+iVal);
whichNode = iVal;
}
NodeList nl = parentNode.getChildNodes();
int foundNodes = -1;
if ( nl != null ) for (int i = 0; i< nl.getLength(); i++ ) {
Node node = nl.item(i);
// doDebug(d,"length= " +nl.getLength()+ " i="+i+" NT="+node.getNodeType());
// doDebug(d,"searching nn="+nodeName+" nc="+node.getNodeName());
if (node.getNodeType() == node.ELEMENT_NODE) {
if ( nodeName.equals(node.getNodeName()) ) {
foundNodes++;
d--;
if ( DF ) doDebug(d,"< getOrAddChildNode found name="+ nodeToString(node));
if ( DF ) doDebug(d,"foundNodes = "+foundNodes+" looking for node="+whichNode);
if ( foundNodes >= whichNode ) return node;
}
}
}
Element newNode = null;
while ( foundNodes < whichNode ) {
foundNodes++;
if ( DF ) doDebug(d,"Adding node at position " + foundNodes + " moving toward " + whichNode);
if ( nodeName == null ) continue;
newNode = doc.createElement(nodeName);
if ( DF ) doDebug(d,"Adding "+nodeName+" at "+ nodeToString(parentNode)+" in "+doc);
parentNode.appendChild(newNode);
if ( DF ) doDebug(d,"xml="+documentToString(doc,false));
if ( DF ) doDebug(d,"getOrAddChildNode added newnode="+ nodeToString(newNode));
}
d--;
if ( DF ) doDebug(d,"< getOrAddChildNode added newnode="+ nodeToString(newNode));
return newNode;
}